import * as mongoose from 'mongoose';
import db from '../lib/db/mongodb';

//月拜访计划model
//说明:月拜访计划包括导入月计划和申请的临时计划
//comment=1 导入的月计划,导入的第一条拜访计划数据有该员工的组织架构信息
//comment=2  申请的临时计划
let visitMonthPlanSchema: mongoose.Schema = new mongoose.Schema({
    sourceId: String,
    leadIndate: String,
    //员工信息
    userId: String,//员工id
    user: String,     //员工姓名
    avatar: String,
    jobnumber: String,//工号
    deptId: [],  //部门id
    roles: [],          //角色
    //组织架构信息
    provinceManager: String,//省份负责人
    areaManager: String,//区域负责人
    modelManager: String,      //模块负责人
    nationalManager: String,//全国负责人
    area: String,//员工所属的区域
    city: String,//员工所在城市名称
    province: String,//员工所属的省份
    team: String,//员工所在团队
    nation: String,//全国
    manageModel: String,     //模块
    provinceName: String,//省份名称
    areaName: String,//区域名称
    manageModelName: String,//模块名称
    teamName: String,//团队名称
    nationName: String,//全国名称

    //计划信息
    planDate: String,  //拜访日期
    consumerName: String,    //名称  客户名称  门店名称
    consumerCode: String,    //编码   客户编码  门店编码
    //=================新增==2019-01-02=====================
    consumerAddress:String,//客户地址 
    isAdjust:Boolean,//是否调整过拜访时间 true:调整过   false:未调整   默认为false
    year:String,//计划的年份   
    //=================新增=======================
    channel: String,//门店渠道
    customerType: String,//客户类型   门店类型=storeInfo的门店分类:store_classification
    rest: String,//休假(请假)<================无用
    meeting: String,//开会<================无用
    //拜访类型 现有客户|门店|其他|新拓展客户
    plantype: String,//拜访类型     plantype与导入的客户数据有关 
    planStatus: String,//计划的状态  未审核!待修改!写拜访记录|未写拜访记录|申请取消(只能在拜访日期前)|未通过审核|同意|不同意
    //(以当天结束为准,以0点为准,就不能写拜访记录了)
    visitRecoder: String,    //拜访记录

    month: String,   //计划月份
    mark: String,    //标志----判断是否拜访完一个客户或门店  'red'|'green'|null

    purpose: String,     //拜访目的
    comment: Number,//说明-----用于说明该条数据是导入的计划数据|还是员工申请的临时计划数据
    cancelApply: String, //申请取消(2019--1-17以前)      是否做过拜访日期的调整:2019-01-17以后
    remark: String   //领导审批时 审批的意见
}, { collection: 'visitMonthPlan' });
export interface VisitMonthPlan extends mongoose.Document {
    sourceId: string;
    leadIndate: string;
    //员工信息
    userId: string;          //员工id
    avatar: string;
    user: string;            //员工姓名
    jobnumber: string;       //员工工号
    deptId: any[];        //部门id
    provinceManager: string;//省份负责人
    province: string;//员工所在省份
    areaManager: string;//区域负责人
    roles: string[];              //角色
    modelManager: string;        //模块负责人

    nationalManager: string;   //全国负责人
    team: string;//员工所在团队
    area: string;//员工所在区域
    city: string;//员工所在城市
    nation: string;//全国
    manageModel: string;        //员工所在模块
    provinceName: string;//省份名称
    areaName: string;//区域名称
    manageModelName: string;//模块名称
    teamName: string;//团队名称
    nationName: string;//全国名称



    //门店或客户的信息
    channel: string;             //门店渠道
    planDate: string;       //拜访日期
    consumerName: string;    //客户名称  如北京信合 上海双齐
    consumerCode: string;    //客户编码 E513K02
    customerType: string;    //客户类型----新拓展客户=线上客户|综合类客户等,|或现有客户 =typeOne
    //=================新增=2019-01-02======================
    consumerAddress:string;//客户地址
    isAdjust:boolean;//是否调整过拜访时间 true:调整过   false:未调整 默认为false
    year:string; //计划的年份   <========================================================从2019年开始 阳历
    //=================新增=======================

    //计划的信息
    rest: string;
    meeting: string;
    month: string;            //计划月份
    comment: number;   //1---导入的计划数据,2---员工申请的临时计划数据,3----导入的组织架构数据
    //说明-----用于说明该条数据是导入的计划数据|还是员工申请的临时计划数据|导入的组织架构数据

    plantype: string;        //拜访类型 现有客户 新拓展客户 其他 门店
    planStatus: string;      //计划的状态

    purpose: string;         //拜访目的
    mark: string;            //标志----判断是否拜访完一个客户  'red'|'green'|null
    visitRecoder: string;    //拜访记录   
    cancelApply: string;    //是否申请取消  ''-------申请的临时计划|导入的员工组织架构数据  否----导入的月计划
    remark: string            //审批意见 同意,不同意,驳回修改   
}
let visitMonthPlanModel = db.model<VisitMonthPlan>('visitMonthPlan', visitMonthPlanSchema);
// let visitMonthPlanModel = db.model('visitMonthPlan', visitMonthPlanSchema);
export default visitMonthPlanModel;